home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickDraw3D 1.6 SDK / Mac Interfaces / PInterfaces / RAVESystem.p < prev   
Encoding:
Text File  |  1999-05-18  |  16.8 KB  |  530 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        RAVESystem.p
  3.  
  4.      Contains:    Interfaces needed when building RAVE engines                            
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.6
  7.                  Release:    QuickTime 4.0
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT RAVESystem;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __RAVESYSTEM__}
  27. {$SETC __RAVESYSTEM__ := 1}
  28.  
  29. {$I+}
  30. {$SETC RAVESystemIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __CONDITIONALMACROS__}
  34. {$I ConditionalMacros.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __RAVE__}
  37. {$I RAVE.p}
  38. {$ENDC}
  39.  
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN POWER}
  44. {$LibExport+}
  45.  
  46.  
  47. {***********************************************************************************************
  48.  *
  49.  * Typedefs of texture/bitmap method functions provided by the drawing engine.
  50.  *
  51.  **********************************************************************************************}
  52. { TQAColorTableNew    parameter descriptions }
  53. { TQAColorTableType    pixelType            Depth, color space, etc. }
  54. { void                    *pixelData            lookup table entries in pixelType format }
  55. { long                    transparentIndex    boolean, false means no transparency, true means index 0 is transparent }
  56. { TQAColorTable        **newTable            (Out) Newly created TQAColorTable }
  57.  
  58. TYPE
  59. {$IFC TYPED_FUNCTION_POINTERS}
  60.     TQAColorTableNew = FUNCTION(pixelType: TQAColorTableType; pixelData: UNIV Ptr; transparentIndex: LONGINT; VAR newTable: TQAColorTablePtr): TQAError; C;
  61. {$ELSEC}
  62.     TQAColorTableNew = ProcPtr;
  63. {$ENDC}
  64.  
  65. { TQAColorTableDelete    parameter descriptions }
  66. { TQAColorTable        *colorTable        Previously allocated by QAColorTableNew() }
  67. {$IFC TYPED_FUNCTION_POINTERS}
  68.     TQAColorTableDelete = PROCEDURE(VAR colorTable: TQAColorTable); C;
  69. {$ELSEC}
  70.     TQAColorTableDelete = ProcPtr;
  71. {$ENDC}
  72.  
  73. { TQATextureNew    parameter descriptions }
  74. {    unsigned long        flags                Mask of kQATexture_xxx flags }
  75. {    TQAImagePixelType    pixelType            Depth, color space, etc. }
  76. {    const TQAImage        images[]            Image(s) for texture }
  77. {    TQATexture            **newTexture        (Out) Newly created TQATexture, or NULL on error }
  78. {$IFC TYPED_FUNCTION_POINTERS}
  79.     TQATextureNew = FUNCTION(flags: UInt32; pixelType: TQAImagePixelType; {CONST}VAR images: TQAImage; VAR newTexture: TQATexturePtr): TQAError; C;
  80. {$ELSEC}
  81.     TQATextureNew = ProcPtr;
  82. {$ENDC}
  83.  
  84. { TQATextureDetach    parameter descriptions }
  85. {    TQATexture            *texture            Previously allocated by QATextureNew() }
  86. {$IFC TYPED_FUNCTION_POINTERS}
  87.     TQATextureDetach = FUNCTION(VAR texture: TQATexture): TQAError; C;
  88. {$ELSEC}
  89.     TQATextureDetach = ProcPtr;
  90. {$ENDC}
  91.  
  92. { TQATextureDelete    parameter descriptions }
  93. {    TQATexture            *texture            Previously allocated by QATextureNew() }
  94. {$IFC TYPED_FUNCTION_POINTERS}
  95.     TQATextureDelete = PROCEDURE(VAR texture: TQATexture); C;
  96. {$ELSEC}
  97.     TQATextureDelete = ProcPtr;
  98. {$ENDC}
  99.  
  100. { TQATextureBindColorTable    parameter descriptions }
  101. {    TQATexture            *texture            Previously allocated by QATextureNew() }
  102. {    TQAColorTable        *colorTable            Previously allocated by QAColorTableNew() }
  103. {$IFC TYPED_FUNCTION_POINTERS}
  104.     TQATextureBindColorTable = FUNCTION(VAR texture: TQATexture; VAR colorTable: TQAColorTable): TQAError; C;
  105. {$ELSEC}
  106.     TQATextureBindColorTable = ProcPtr;
  107. {$ENDC}
  108.  
  109. { TQABitmapNew    parameter descriptions }
  110. {    unsigned long        flags                Mask of kQABitmap_xxx flags }
  111. {    TQAImagePixelType    pixelType            Depth, color space, etc. }
  112. {    const TQAImage        *image                Image }
  113. {    TQABitmap            **newBitmap            (Out) Newly created TQABitmap, or NULL on error }
  114. {$IFC TYPED_FUNCTION_POINTERS}
  115.     TQABitmapNew = FUNCTION(flags: UInt32; pixelType: TQAImagePixelType; {CONST}VAR image: TQAImage; VAR newBitmap: TQABitmapPtr): TQAError; C;
  116. {$ELSEC}
  117.     TQABitmapNew = ProcPtr;
  118. {$ENDC}
  119.  
  120. { TQABitmapDetach    parameter descriptions }
  121. {    TQABitmap            *bitmap            Previously allocated by QABitmapNew() }
  122. {$IFC TYPED_FUNCTION_POINTERS}
  123.     TQABitmapDetach = FUNCTION(VAR bitmap: TQABitmap): TQAError; C;
  124. {$ELSEC}
  125.     TQABitmapDetach = ProcPtr;
  126. {$ENDC}
  127.  
  128. { TQABitmapDelete    parameter descriptions }
  129. {    TQABitmap            *bitmap            Previously allocated by QABitmapNew() }
  130. {$IFC TYPED_FUNCTION_POINTERS}
  131.     TQABitmapDelete = PROCEDURE(VAR bitmap: TQABitmap); C;
  132. {$ELSEC}
  133.     TQABitmapDelete = ProcPtr;
  134. {$ENDC}
  135.  
  136. { TQABitmapBindColorTable    parameter descriptions }
  137. {    TQABitmap            *bitmap            Previously allocated by QABitmapNew() }
  138. {    TQAColorTable        *colorTable        Previously allocated by QAColorTableNew() }
  139. {$IFC TYPED_FUNCTION_POINTERS}
  140.     TQABitmapBindColorTable = FUNCTION(VAR bitmap: TQABitmap; VAR colorTable: TQAColorTable): TQAError; C;
  141. {$ELSEC}
  142.     TQABitmapBindColorTable = ProcPtr;
  143. {$ENDC}
  144.  
  145. {***********************************************************************************************
  146.  *
  147.  * Typedefs of private (system-only) functions provided by the drawing engine.
  148.  *
  149.  * The TQADrawPrivateNew function returns a TQADrawPrivate *, which points to the
  150.  * engine-specific private data created for the context. (TQADrawPrivate is a dummy
  151.  * type which is then cast to the correct engine-specific datatype by the engine code.)
  152.  *
  153.  * The TQADrawPrivateDelete function deletes the engine-specific private data.
  154.  *
  155.  * TQAStorePrivateNew and TQAStorePrivateDelete provide the same function as QADrawPrivateNew
  156.  * and TQADrawPrivateDelete, but for the texture and bitmap storage context.
  157.  *
  158.  * TQADrawMethodGet and TQAStoreMethodGet are called by the RAVE manager to retrieve
  159.  * the method pointers for a drawing engine.
  160.  *
  161.  * The TQAEngineCheckDevice function returns TRUE if the engine can render to the
  162.  * indicated GDevice.
  163.  *
  164.  **********************************************************************************************}
  165. { TQADrawPrivateNew    parameter descriptions }
  166. {    TQADrawContext        *newDrawContext        Draw context to initialize }
  167. {    const TQADevice        *device                Target device }
  168. {    const TQARect        *rect                Target rectangle (device coordinates) }
  169. {    const TQAClip        *clip                2D clip region (or NULL) }
  170. {    unsigned long        flags                Mask of kQAContext_xxx }
  171. {$IFC TYPED_FUNCTION_POINTERS}
  172.     TQADrawPrivateNew = FUNCTION(VAR newDrawContext: TQADrawContext; {CONST}VAR device: TQADevice; {CONST}VAR rect: TQARect; {CONST}VAR clip: TQAClip; flags: UInt32): TQAError; C;
  173. {$ELSEC}
  174.     TQADrawPrivateNew = ProcPtr;
  175. {$ENDC}
  176.  
  177. { TQADrawPrivateDelete    parameter descriptions }
  178. {    TQADrawPrivate        *drawPrivate        Private context data to delete }
  179. {$IFC TYPED_FUNCTION_POINTERS}
  180.     TQADrawPrivateDelete = PROCEDURE(VAR drawPrivate: TQADrawPrivate); C;
  181. {$ELSEC}
  182.     TQADrawPrivateDelete = ProcPtr;
  183. {$ENDC}
  184.  
  185. { TQAEngineCheckDevice    parameter descriptions }
  186. {    const TQADevice        *device            Target device }
  187. {$IFC TYPED_FUNCTION_POINTERS}
  188.     TQAEngineCheckDevice = FUNCTION({CONST}VAR device: TQADevice): TQAError; C;
  189. {$ELSEC}
  190.     TQAEngineCheckDevice = ProcPtr;
  191. {$ENDC}
  192.  
  193. { TQAEngineGestalt    parameter descriptions }
  194. {    TQAGestaltSelector    selector            Gestalt parameter being requested }
  195. {    void                *response            Buffer that receives response }
  196. {$IFC TYPED_FUNCTION_POINTERS}
  197.     TQAEngineGestalt = FUNCTION(selector: TQAGestaltSelector; response: UNIV Ptr): TQAError; C;
  198. {$ELSEC}
  199.     TQAEngineGestalt = ProcPtr;
  200. {$ENDC}
  201.  
  202.  
  203. { new engine methods for RAVE 1.6 }
  204. {$IFC TYPED_FUNCTION_POINTERS}
  205.     TQAAccessTexture = FUNCTION(VAR texture: TQATexture; mipmapLevel: LONGINT; flags: LONGINT; VAR buffer: TQAPixelBuffer): TQAError; C;
  206. {$ELSEC}
  207.     TQAAccessTexture = ProcPtr;
  208. {$ENDC}
  209.  
  210. {$IFC TYPED_FUNCTION_POINTERS}
  211.     TQAAccessTextureEnd = FUNCTION(VAR texture: TQATexture; {CONST}VAR dirtyRect: TQARect): TQAError; C;
  212. {$ELSEC}
  213.     TQAAccessTextureEnd = ProcPtr;
  214. {$ENDC}
  215.  
  216. {$IFC TYPED_FUNCTION_POINTERS}
  217.     TQAAccessBitmap = FUNCTION(VAR bitmap: TQABitmap; flags: LONGINT; VAR buffer: TQAPixelBuffer): TQAError; C;
  218. {$ELSEC}
  219.     TQAAccessBitmap = ProcPtr;
  220. {$ENDC}
  221.  
  222. {$IFC TYPED_FUNCTION_POINTERS}
  223.     TQAAccessBitmapEnd = FUNCTION(VAR bitmap: TQABitmap; {CONST}VAR dirtyRect: TQARect): TQAError; C;
  224. {$ELSEC}
  225.     TQAAccessBitmapEnd = ProcPtr;
  226. {$ENDC}
  227.  
  228. {***********************************************************************************************
  229.  *
  230.  * The TQAEngineMethod union is used to represent a single engine method (it's a
  231.  * parameter to QAEngineGetMethod). TQAEngineMethodTag identifies which method is being
  232.  * requested.
  233.  *
  234.  **********************************************************************************************}
  235.     TQAEngineMethodPtr = ^TQAEngineMethod;
  236.     TQAEngineMethod = RECORD
  237.         CASE INTEGER OF
  238.         0: (
  239.             drawPrivateNew:        TQADrawPrivateNew;                        {  Method: Create a private draw context  }
  240.             );
  241.         1: (
  242.             drawPrivateDelete:    TQADrawPrivateDelete;                    {  Method: Delete a private draw context  }
  243.             );
  244.         2: (
  245.             engineCheckDevice:    TQAEngineCheckDevice;                    {  Method: Check a device for drawing  }
  246.             );
  247.         3: (
  248.             engineGestalt:        TQAEngineGestalt;                        {  Method: Gestalt  }
  249.             );
  250.         4: (
  251.             textureNew:            TQATextureNew;                            {  Method: Create a texture (load is non-blocking)  }
  252.             );
  253.         5: (
  254.             textureDetach:        TQATextureDetach;                        {  Method: Complete load of a texture (blocking)  }
  255.             );
  256.         6: (
  257.             textureDelete:        TQATextureDelete;                        {  Method: Delete a texture  }
  258.             );
  259.         7: (
  260.             bitmapNew:            TQABitmapNew;                            {  Method: Create a bitmap (load is non-blocking)   }
  261.             );
  262.         8: (
  263.             bitmapDetach:        TQABitmapDetach;                        {  Method: Complete load of a bitmap (blocking)  }
  264.             );
  265.         9: (
  266.             bitmapDelete:        TQABitmapDelete;                        {  Method: Delete a bitmap  }
  267.             );
  268.         10: (
  269.             colorTableNew:        TQAColorTableNew;                        {  Method: Create a new color table  }
  270.             );
  271.         11: (
  272.             colorTableDelete:    TQAColorTableDelete;                    {  Method: Create a new color table  }
  273.             );
  274.         12: (
  275.             textureBindColorTable: TQATextureBindColorTable;            {  Method: Bind a CLUT to a texture  }
  276.             );
  277.         13: (
  278.             bitmapBindColorTable: TQABitmapBindColorTable;                {  Method: Bind a CLUT to a bitmap  }
  279.             );
  280.         14: (
  281.             accessTexture:        TQAAccessTexture;
  282.             );
  283.         15: (
  284.             accessTextureEnd:    TQAAccessTextureEnd;
  285.             );
  286.         16: (
  287.             accessBitmap:        TQAAccessBitmap;
  288.             );
  289.         17: (
  290.             accessBitmapEnd:    TQAAccessBitmapEnd;
  291.             );
  292.     END;
  293.  
  294.     TQAEngineMethodTag             = SInt32;
  295. CONST
  296.     kQADrawPrivateNew            = 0;
  297.     kQADrawPrivateDelete        = 1;
  298.     kQAEngineCheckDevice        = 2;
  299.     kQAEngineGestalt            = 3;
  300.     kQATextureNew                = 4;
  301.     kQATextureDetach            = 5;
  302.     kQATextureDelete            = 6;
  303.     kQABitmapNew                = 7;
  304.     kQABitmapDetach                = 8;
  305.     kQABitmapDelete                = 9;
  306.     kQAColorTableNew            = 10;
  307.     kQAColorTableDelete            = 11;
  308.     kQATextureBindColorTable    = 12;
  309.     kQABitmapBindColorTable        = 13;
  310.     kQAAccessTexture            = 14;
  311.     kQAAccessTextureEnd            = 15;
  312.     kQAAccessBitmap                = 16;
  313.     kQAAccessBitmapEnd            = 17;
  314.  
  315. {***********************************************************************************************
  316.  *
  317.  * QARegisterEngine() registers a new engine. This is called at boot time by the drawing engine
  318.  * initialization code to register itself with the system. This call takes only one parameter,
  319.  * the engine's function that allows the manager to request the other methods.
  320.  *
  321.  **********************************************************************************************}
  322. { TQAEngineGetMethod    parameter descriptions }
  323. {    TQAEngineMethodTag        methodTag                Method being requested }
  324. {    TQAEngineMethod            *method                    (Out) Method }
  325.  
  326. TYPE
  327. {$IFC TYPED_FUNCTION_POINTERS}
  328.     TQAEngineGetMethod = FUNCTION(methodTag: TQAEngineMethodTag; VAR method: TQAEngineMethod): TQAError; C;
  329. {$ELSEC}
  330.     TQAEngineGetMethod = ProcPtr;
  331. {$ENDC}
  332.  
  333. { QARegisterEngine    parameter descriptions }
  334. {    TQAEngineGetMethod        engineGetMethod        Engine's getMethod method }
  335. FUNCTION QARegisterEngine(engineGetMethod: TQAEngineGetMethod): TQAError; C;
  336.  
  337. { QARegisterEngineWithRefCon parameter descriptions }
  338. {    TQAEngineGetMethod        engineGetMethod        Engine's getMethod method }
  339. {  long                    refCon                Engine RefCon }
  340. FUNCTION QARegisterEngineWithRefCon(engineGetMethod: TQAEngineGetMethod; refCon: LONGINT): TQAError; C;
  341. { QAGetEngineRefCon parameter descriptions }
  342. FUNCTION QAGetCurrentEngineRefCon: LONGINT; C;
  343.  
  344. {***********************************************************************************************
  345.  *
  346.  * The TQADrawMethod union is used to represent a single draw context method (it's a
  347.  * parameter to QARegisterDrawMethod). TQADrawMethodTag identifies which method is being
  348.  * passed.
  349.  *
  350.  **********************************************************************************************}
  351.  
  352. TYPE
  353.     TQADrawMethodPtr = ^TQADrawMethod;
  354.     TQADrawMethod = RECORD
  355.         CASE INTEGER OF
  356.         0: (
  357.             setFloat:            TQASetFloat;                            {  Method: Set a float state variable  }
  358.             );
  359.         1: (
  360.             setInt:                TQASetInt;                                {  Method: Set an unsigned long state variable  }
  361.             );
  362.         2: (
  363.             setPtr:                TQASetPtr;                                {  Method: Set an unsigned long state variable  }
  364.             );
  365.         3: (
  366.             getFloat:            TQAGetFloat;                            {  Method: Get a float state variable  }
  367.             );
  368.         4: (
  369.             getInt:                TQAGetInt;                                {  Method: Get an unsigned long state variable  }
  370.             );
  371.         5: (
  372.             getPtr:                TQAGetPtr;                                {  Method: Get an pointer state variable  }
  373.             );
  374.         6: (
  375.             drawPoint:            TQADrawPoint;                            {  Method: Draw a point  }
  376.             );
  377.         7: (
  378.             drawLine:            TQADrawLine;                            {  Method: Draw a line  }
  379.             );
  380.         8: (
  381.             drawTriGouraud:        TQADrawTriGouraud;                        {  Method: Draw a Gouraud shaded triangle  }
  382.             );
  383.         9: (
  384.             drawTriTexture:        TQADrawTriTexture;                        {  Method: Draw a texture mapped triangle  }
  385.             );
  386.         10: (
  387.             drawVGouraud:        TQADrawVGouraud;                        {  Method: Draw Gouraud vertices  }
  388.             );
  389.         11: (
  390.             drawVTexture:        TQADrawVTexture;                        {  Method: Draw texture vertices  }
  391.             );
  392.         12: (
  393.             drawBitmap:            TQADrawBitmap;                            {  Method: Draw a bitmap  }
  394.             );
  395.         13: (
  396.             renderStart:        TQARenderStart;                            {  Method: Initialize for rendering  }
  397.             );
  398.         14: (
  399.             renderEnd:            TQARenderEnd;                            {  Method: Complete rendering and display  }
  400.             );
  401.         15: (
  402.             renderAbort:        TQARenderAbort;                            {  Method: Abort any outstanding rendering (blocking)  }
  403.             );
  404.         16: (
  405.             flush:                TQAFlush;                                {  Method: Start render of any queued commands (non-blocking)  }
  406.             );
  407.         17: (
  408.             sync:                TQASync;                                {  Method: Wait for completion of all rendering (blocking)  }
  409.             );
  410.         18: (
  411.             submitVerticesGouraud: TQASubmitVerticesGouraud;            {  Method: Submit Gouraud vertices for trimesh  }
  412.             );
  413.         19: (
  414.             submitVerticesTexture: TQASubmitVerticesTexture;            {  Method: Submit Texture vertices for trimesh  }
  415.             );
  416.         20: (
  417.             drawTriMeshGouraud:    TQADrawTriMeshGouraud;                    {  Method: Draw a Gouraud triangle mesh  }
  418.             );
  419.         21: (
  420.             drawTriMeshTexture:    TQADrawTriMeshTexture;                    {  Method: Draw a Texture triangle mesh  }
  421.             );
  422.         22: (
  423.             setNoticeMethod:    TQASetNoticeMethod;                        {  Method: Set a notice method  }
  424.             );
  425.         23: (
  426.             getNoticeMethod:    TQAGetNoticeMethod;                        {  Method: Get a notice method  }
  427.             );
  428.                                                                         {  new in 1.6  }
  429.         24: (
  430.             submitMultiTextureParams: TQASubmitMultiTextureParams;        {  Method: Submit secondary texture params  }
  431.             );
  432.         25: (
  433.             accessDrawBuffer:    TQAAccessDrawBuffer;
  434.             );
  435.         26: (
  436.             accessDrawBufferEnd: TQAAccessDrawBufferEnd;
  437.             );
  438.         27: (
  439.             accessZBuffer:        TQAAccessZBuffer;
  440.             );
  441.         28: (
  442.             accessZBufferEnd:    TQAAccessZBufferEnd;
  443.             );
  444.         29: (
  445.             clearDrawBuffer:    TQAClearDrawBuffer;
  446.             );
  447.         30: (
  448.             clearZBuffer:        TQAClearZBuffer;
  449.             );
  450.         31: (
  451.             textureFromContext:    TQATextureNewFromDrawContext;
  452.             );
  453.         32: (
  454.             bitmapFromContext:    TQABitmapNewFromDrawContext;
  455.             );
  456.         33: (
  457.             busy:                TQABusy;
  458.             );
  459.         34: (
  460.             swapBuffers:        TQASwapBuffers;
  461.             );
  462.     END;
  463.  
  464.     TQADrawMethodTag             = SInt32;
  465. CONST
  466.     kQASetFloat                    = 0;
  467.     kQASetInt                    = 1;
  468.     kQASetPtr                    = 2;
  469.     kQAGetFloat                    = 3;
  470.     kQAGetInt                    = 4;
  471.     kQAGetPtr                    = 5;
  472.     kQADrawPoint                = 6;
  473.     kQADrawLine                    = 7;
  474.     kQADrawTriGouraud            = 8;
  475.     kQADrawTriTexture            = 9;
  476.     kQADrawVGouraud                = 10;
  477.     kQADrawVTexture                = 11;
  478.     kQADrawBitmap                = 12;
  479.     kQARenderStart                = 13;
  480.     kQARenderEnd                = 14;
  481.     kQARenderAbort                = 15;
  482.     kQAFlush                    = 16;
  483.     kQASync                        = 17;
  484.     kQASubmitVerticesGouraud    = 18;
  485.     kQASubmitVerticesTexture    = 19;
  486.     kQADrawTriMeshGouraud        = 20;
  487.     kQADrawTriMeshTexture        = 21;
  488.     kQASetNoticeMethod            = 22;
  489.     kQAGetNoticeMethod            = 23;
  490.     kQSubmitMultiTextureParams    = 24;
  491.     kQAccessDrawBuffer            = 25;
  492.     kQAccessDrawBufferEnd        = 26;
  493.     kQAccessZBuffer                = 27;
  494.     kQAccessZBufferEnd            = 28;
  495.     kQClearDrawBuffer            = 29;
  496.     kQClearZBuffer                = 30;
  497.     kQTextureNewFromDrawContext    = 31;
  498.     kQBitmapNewFromDrawContext    = 32;
  499.     kQBusy                        = 33;
  500.     kQSwapBuffers                = 34;
  501.  
  502. {***********************************************************************************************
  503.  *
  504.  * System call to register a new method for an engine. This is called during the engine's
  505.  * draw private new functions (to set the initial value of the draw methods), and possibly
  506.  * at other times when the engine needs to change a draw method.
  507.  *
  508.  **********************************************************************************************}
  509. { QARegisterDrawMethod    parameter descriptions }
  510. {    TQADrawContext            *drawContext            Draw context in which to set method }
  511. {    TQADrawMethodTag        methodTag                Method to set }
  512. {    TQADrawMethod            method                    Method }
  513. FUNCTION QARegisterDrawMethod(VAR drawContext: TQADrawContext; methodTag: TQADrawMethodTag; method: TQADrawMethod): TQAError; C;
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520. {$ALIGN RESET}
  521. {$POP}
  522.  
  523. {$SETC UsingIncludes := RAVESystemIncludes}
  524.  
  525. {$ENDC} {__RAVESYSTEM__}
  526.  
  527. {$IFC NOT UsingIncludes}
  528.  END.
  529. {$ENDC}
  530.